home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998…eptember: Technology Seed / September 98 ADC Seed CD.toast / FireWire 1.1 DR2 SDK / Source / OpenTransport / Interfaces / OpenTptDevSerial.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-15  |  2.9 KB  |  142 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        OpenTptDevSerial.h
  3.  
  4.     Contains:    Definition of the Serial Family and Group objects
  5.  
  6.     Copyright:    © 1994-1995 by Apple Computer, Inc., all rights reserved.
  7.  
  8.  
  9. */
  10.  
  11. #ifndef __OPENTPTDEVSERIAL__
  12. #define __OPENTPTDEVSERIAL__
  13.  
  14. #ifdef __cplusplus
  15.     #ifndef __OPENTPTMODULECLASSES__
  16.     #include <OpenTptModuleClasses.h>
  17.     #endif
  18. #else
  19.     #ifndef __OPENTPTMODULE__
  20.     #include <OpenTptModule.h>
  21.     #endif
  22. #endif
  23. #ifndef __OPENTPTSERIAL__
  24. #include <OpenTptSerial.h>
  25. #endif
  26.  
  27. #if defined(__MWERKS__) && GENERATING68K
  28. #pragma pointers_in_D0
  29. #endif
  30.  
  31. /*******************************************************************************
  32. ** Configuration Structure
  33. ********************************************************************************/
  34.  
  35. enum
  36. {
  37.     kSerialPrefsVersion        = 1,
  38.     kSerialConfigVersion    = 1,
  39.     kSerialConfigIndex        = 0,
  40.     kSerialNumGenerics        = 4
  41. };
  42.  
  43. struct SerialPreferences
  44. {
  45.     OTPreferencesFields(1);
  46. };
  47.  
  48. struct SerialConfig
  49. {
  50.     UInt16        fVersion;
  51.     UInt16        fFiller;
  52.     UInt32        fBaudRate;
  53.     UInt16        fHandshake;
  54.     UInt8        fOnChar;
  55.     UInt8        fOffChar;
  56.     UInt8        fDataBits;
  57.     UInt8        fStopBits;
  58.     UInt8        fParity;
  59.     UInt8        fPEChar;
  60.     UInt8        fPECharAlternate;
  61.     UInt8        fExtClockDivisor;
  62.     Boolean        fBurstMode;
  63.     UInt8        fUsePECharAlternate;
  64.     UInt8        fFillerBytes[2];
  65.     OTTimeout    fRcvTimeout;
  66.     size_t        fRcvBufSize;
  67.     size_t        fSndBufSize;
  68.     size_t        fRcvLoWat;
  69.     size_t        fSndLoWat;
  70. };
  71.  
  72. struct TSerialFamily;
  73.  
  74. #ifdef __cplusplus
  75. extern "C" {
  76. #endif
  77.  
  78. TSerialFamily*    OTGetSerialFamily();
  79.  
  80. #ifdef __cplusplus
  81. }
  82. #endif
  83.  
  84.  
  85. /*******************************************************************************
  86. ** TSerialFamily
  87. ********************************************************************************/
  88.  
  89. #ifdef __cplusplus
  90.  
  91. #if GENERATING68K || MPS_USES_ASLM
  92. #define kTSerialFamilyID    kOTKernelPrefix "SrlFmly,1.0"
  93. #endif
  94.  
  95. class TSerialFamily : public TStreamFamily
  96. {
  97.     public:
  98.                                     _CT TSerialFamily();
  99.         virtual                        _DT TSerialFamily();
  100.         
  101.         static    TSerialFamily*        _CDECL GetFamily();
  102.                                 
  103.         virtual    OTUnixErr            _MDECL CreateDefaultPreferences(OTPortRef, void** prefPtr);
  104.  
  105.     private:
  106.         static TSerialFamily*        gSerialFamily;
  107. };
  108.  
  109. /*******************************************************************************
  110. ** TSerialGroup
  111. ********************************************************************************/
  112.  
  113. #if GENERATING68K || MPS_USES_ASLM
  114. #define kTSerialGroupID        kOTKernelPrefix "SrlGrp,1.0"
  115. #endif
  116.  
  117. class TSerialGroup : public TStreamGroup
  118. {
  119.     public:
  120.                             _CT TSerialGroup(const char*);
  121.         virtual                _DT TSerialGroup();
  122.         
  123.                   void        GetSerialPreferences(SerialConfig**);
  124. };
  125.  
  126. /*    -------------------------------------------------------------------------
  127.     Inline methods for TSerialGroup
  128.     ------------------------------------------------------------------------- */
  129.  
  130.     inline void TSerialGroup::GetSerialPreferences(SerialConfig** cfigPtr)
  131.     {
  132.         GetFamily()->GetPreferences(fPort, kSerialConfigIndex, (void**)cfigPtr);
  133.     }
  134.     
  135. #endif
  136.  
  137. #if defined(__MWERKS__) && GENERATING68K
  138. #pragma pointers_in_A0
  139. #endif
  140.  
  141. #endif
  142.